package com.ruoyi.report_gc.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.syrw.annotation.FIllBasicInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.report_gc.domain.bo.GcjxljjtklqdjlbBsInfoBo;
import com.ruoyi.report_gc.domain.vo.GcjxljjtklqdjlbBsInfoVo;
import com.ruoyi.report_gc.domain.GcjxljjtklqdjlbBsInfo;
import com.ruoyi.report_gc.mapper.GcjxljjtklqdjlbBsInfoMapper;
import com.ruoyi.report_gc.service.IGcjxljjtklqdjlbBsInfoService;

import java.util.List;
import java.util.Map;
import java.util.Collection;

/**
 * 钢材机械连接接头抗拉强度试验检测记录Service业务层处理
 *
 * @author llb
 * @date 2024-06-18
 */
@RequiredArgsConstructor
@Service
public class GcjxljjtklqdjlbBsInfoServiceImpl implements IGcjxljjtklqdjlbBsInfoService {

    private final GcjxljjtklqdjlbBsInfoMapper baseMapper;

    /**
     * 查询钢材机械连接接头抗拉强度试验检测记录
     */
    @Override
    @FIllBasicInfo
    public GcjxljjtklqdjlbBsInfoVo queryById(Long excelId){
        return baseMapper.selectVoById(excelId);
    }

    /**
     * 查询钢材机械连接接头抗拉强度试验检测记录列表
     */
    @Override
    public TableDataInfo<GcjxljjtklqdjlbBsInfoVo> queryPageList(GcjxljjtklqdjlbBsInfoBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<GcjxljjtklqdjlbBsInfo> lqw = buildQueryWrapper(bo);
        Page<GcjxljjtklqdjlbBsInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }

    /**
     * 查询钢材机械连接接头抗拉强度试验检测记录列表
     */
    @Override
    public List<GcjxljjtklqdjlbBsInfoVo> queryList(GcjxljjtklqdjlbBsInfoBo bo) {
        LambdaQueryWrapper<GcjxljjtklqdjlbBsInfo> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }

    private LambdaQueryWrapper<GcjxljjtklqdjlbBsInfo> buildQueryWrapper(GcjxljjtklqdjlbBsInfoBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<GcjxljjtklqdjlbBsInfo> lqw = Wrappers.lambdaQuery();
        lqw.eq(bo.getTotalPage() != null, GcjxljjtklqdjlbBsInfo::getTotalPage, bo.getTotalPage());
        lqw.eq(bo.getPage() != null, GcjxljjtklqdjlbBsInfo::getPage, bo.getPage());
        lqw.eq(StringUtils.isNotBlank(bo.getJiancdwmc()), GcjxljjtklqdjlbBsInfo::getJiancdwmc, bo.getJiancdwmc());
        lqw.eq(StringUtils.isNotBlank(bo.getJilbh()), GcjxljjtklqdjlbBsInfo::getJilbh, bo.getJilbh());
        lqw.eq(StringUtils.isNotBlank(bo.getGongcmc()), GcjxljjtklqdjlbBsInfo::getGongcmc, bo.getGongcmc());
        lqw.eq(StringUtils.isNotBlank(bo.getGongcbwyt()), GcjxljjtklqdjlbBsInfo::getGongcbwyt, bo.getGongcbwyt());
        lqw.eq(StringUtils.isNotBlank(bo.getYangpmc()), GcjxljjtklqdjlbBsInfo::getYangpmc, bo.getYangpmc());
        lqw.eq(StringUtils.isNotBlank(bo.getYangpbh()), GcjxljjtklqdjlbBsInfo::getYangpbh, bo.getYangpbh());
        lqw.eq(StringUtils.isNotBlank(bo.getYangpsl()), GcjxljjtklqdjlbBsInfo::getYangpsl, bo.getYangpsl());
        lqw.eq(StringUtils.isNotBlank(bo.getYangpzt()), GcjxljjtklqdjlbBsInfo::getYangpzt, bo.getYangpzt());
        lqw.eq(StringUtils.isNotBlank(bo.getYangpsj()), GcjxljjtklqdjlbBsInfo::getYangpsj, bo.getYangpsj());
        lqw.eq(StringUtils.isNotBlank(bo.getShiyjcrq()), GcjxljjtklqdjlbBsInfo::getShiyjcrq, bo.getShiyjcrq());
        lqw.eq(StringUtils.isNotBlank(bo.getShiytjwd()), GcjxljjtklqdjlbBsInfo::getShiytjwd, bo.getShiytjwd());
        lqw.eq(StringUtils.isNotBlank(bo.getShiytjsd()), GcjxljjtklqdjlbBsInfo::getShiytjsd, bo.getShiytjsd());
        lqw.eq(StringUtils.isNotBlank(bo.getJiancyj()), GcjxljjtklqdjlbBsInfo::getJiancyj, bo.getJiancyj());
        lqw.eq(StringUtils.isNotBlank(bo.getPandyj()), GcjxljjtklqdjlbBsInfo::getPandyj, bo.getPandyj());
        lqw.eq(StringUtils.isNotBlank(bo.getZhuyyqsbmcjbh()), GcjxljjtklqdjlbBsInfo::getZhuyyqsbmcjbh, bo.getZhuyyqsbmcjbh());
        lqw.eq(StringUtils.isNotBlank(bo.getPih()), GcjxljjtklqdjlbBsInfo::getPih, bo.getPih());
        lqw.eq(StringUtils.isNotBlank(bo.getGangjqddjph()), GcjxljjtklqdjlbBsInfo::getGangjqddjph, bo.getGangjqddjph());
        lqw.eq(StringUtils.isNotBlank(bo.getLianjxs()), GcjxljjtklqdjlbBsInfo::getLianjxs, bo.getLianjxs());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh1()), GcjxljjtklqdjlbBsInfo::getShijbh1, bo.getShijbh1());
        lqw.eq(bo.getZhij1() != null, GcjxljjtklqdjlbBsInfo::getZhij1, bo.getZhij1());
        lqw.eq(bo.getJiemj1() != null, GcjxljjtklqdjlbBsInfo::getJiemj1, bo.getJiemj1());
        lqw.eq(bo.getHezscz1() != null, GcjxljjtklqdjlbBsInfo::getHezscz1, bo.getHezscz1());
        lqw.eq(bo.getQiangdscz1() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz1, bo.getQiangdscz1());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz1()), GcjxljjtklqdjlbBsInfo::getDaunltz1, bo.getDaunltz1());
        lqw.eq(bo.getDuanlwz1() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz1, bo.getDuanlwz1());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd1()), GcjxljjtklqdjlbBsInfo::getJiegpd1, bo.getJiegpd1());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh2()), GcjxljjtklqdjlbBsInfo::getShijbh2, bo.getShijbh2());
        lqw.eq(bo.getHezscz2() != null, GcjxljjtklqdjlbBsInfo::getHezscz2, bo.getHezscz2());
        lqw.eq(bo.getQiangdscz2() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz2, bo.getQiangdscz2());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz2()), GcjxljjtklqdjlbBsInfo::getDaunltz2, bo.getDaunltz2());
        lqw.eq(bo.getDuanlwz2() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz2, bo.getDuanlwz2());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd2()), GcjxljjtklqdjlbBsInfo::getJiegpd2, bo.getJiegpd2());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh3()), GcjxljjtklqdjlbBsInfo::getShijbh3, bo.getShijbh3());
        lqw.eq(bo.getHezscz3() != null, GcjxljjtklqdjlbBsInfo::getHezscz3, bo.getHezscz3());
        lqw.eq(bo.getQiangdscz3() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz3, bo.getQiangdscz3());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz3()), GcjxljjtklqdjlbBsInfo::getDaunltz3, bo.getDaunltz3());
        lqw.eq(bo.getDuanlwz3() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz3, bo.getDuanlwz3());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd3()), GcjxljjtklqdjlbBsInfo::getJiegpd3, bo.getJiegpd3());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh4()), GcjxljjtklqdjlbBsInfo::getShijbh4, bo.getShijbh4());
        lqw.eq(bo.getZhij4() != null, GcjxljjtklqdjlbBsInfo::getZhij4, bo.getZhij4());
        lqw.eq(bo.getJiemj4() != null, GcjxljjtklqdjlbBsInfo::getJiemj4, bo.getJiemj4());
        lqw.eq(bo.getHezscz4() != null, GcjxljjtklqdjlbBsInfo::getHezscz4, bo.getHezscz4());
        lqw.eq(bo.getQiangdscz4() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz4, bo.getQiangdscz4());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz4()), GcjxljjtklqdjlbBsInfo::getDaunltz4, bo.getDaunltz4());
        lqw.eq(bo.getDuanlwz4() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz4, bo.getDuanlwz4());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd4()), GcjxljjtklqdjlbBsInfo::getJiegpd4, bo.getJiegpd4());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh5()), GcjxljjtklqdjlbBsInfo::getShijbh5, bo.getShijbh5());
        lqw.eq(bo.getHezscz5() != null, GcjxljjtklqdjlbBsInfo::getHezscz5, bo.getHezscz5());
        lqw.eq(bo.getQiangdscz5() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz5, bo.getQiangdscz5());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz5()), GcjxljjtklqdjlbBsInfo::getDaunltz5, bo.getDaunltz5());
        lqw.eq(bo.getDuanlwz5() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz5, bo.getDuanlwz5());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd5()), GcjxljjtklqdjlbBsInfo::getJiegpd5, bo.getJiegpd5());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh6()), GcjxljjtklqdjlbBsInfo::getShijbh6, bo.getShijbh6());
        lqw.eq(bo.getHezscz6() != null, GcjxljjtklqdjlbBsInfo::getHezscz6, bo.getHezscz6());
        lqw.eq(bo.getQiangdscz6() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz6, bo.getQiangdscz6());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz6()), GcjxljjtklqdjlbBsInfo::getDaunltz6, bo.getDaunltz6());
        lqw.eq(bo.getDuanlwz6() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz6, bo.getDuanlwz6());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd6()), GcjxljjtklqdjlbBsInfo::getJiegpd6, bo.getJiegpd6());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh7()), GcjxljjtklqdjlbBsInfo::getShijbh7, bo.getShijbh7());
        lqw.eq(bo.getZhij7() != null, GcjxljjtklqdjlbBsInfo::getZhij7, bo.getZhij7());
        lqw.eq(bo.getJiemj7() != null, GcjxljjtklqdjlbBsInfo::getJiemj7, bo.getJiemj7());
        lqw.eq(bo.getHezscz7() != null, GcjxljjtklqdjlbBsInfo::getHezscz7, bo.getHezscz7());
        lqw.eq(bo.getQiangdscz7() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz7, bo.getQiangdscz7());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz7()), GcjxljjtklqdjlbBsInfo::getDaunltz7, bo.getDaunltz7());
        lqw.eq(bo.getDuanlwz7() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz7, bo.getDuanlwz7());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd7()), GcjxljjtklqdjlbBsInfo::getJiegpd7, bo.getJiegpd7());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh8()), GcjxljjtklqdjlbBsInfo::getShijbh8, bo.getShijbh8());
        lqw.eq(bo.getHezscz8() != null, GcjxljjtklqdjlbBsInfo::getHezscz8, bo.getHezscz8());
        lqw.eq(bo.getQiangdscz8() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz8, bo.getQiangdscz8());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz8()), GcjxljjtklqdjlbBsInfo::getDaunltz8, bo.getDaunltz8());
        lqw.eq(bo.getDuanlwz8() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz8, bo.getDuanlwz8());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd8()), GcjxljjtklqdjlbBsInfo::getJiegpd8, bo.getJiegpd8());
        lqw.eq(StringUtils.isNotBlank(bo.getShijbh9()), GcjxljjtklqdjlbBsInfo::getShijbh9, bo.getShijbh9());
        lqw.eq(bo.getHezscz9() != null, GcjxljjtklqdjlbBsInfo::getHezscz9, bo.getHezscz9());
        lqw.eq(bo.getQiangdscz9() != null, GcjxljjtklqdjlbBsInfo::getQiangdscz9, bo.getQiangdscz9());
        lqw.eq(StringUtils.isNotBlank(bo.getDaunltz9()), GcjxljjtklqdjlbBsInfo::getDaunltz9, bo.getDaunltz9());
        lqw.eq(bo.getDuanlwz9() != null, GcjxljjtklqdjlbBsInfo::getDuanlwz9, bo.getDuanlwz9());
        lqw.eq(StringUtils.isNotBlank(bo.getJiegpd9()), GcjxljjtklqdjlbBsInfo::getJiegpd9, bo.getJiegpd9());
        lqw.eq(StringUtils.isNotBlank(bo.getFujsm()), GcjxljjtklqdjlbBsInfo::getFujsm, bo.getFujsm());
        lqw.eq(StringUtils.isNotBlank(bo.getShebIds()), GcjxljjtklqdjlbBsInfo::getShebIds, bo.getShebIds());
        lqw.eq(StringUtils.isNotBlank(bo.getJianc()), GcjxljjtklqdjlbBsInfo::getJianc, bo.getJianc());
        lqw.eq(StringUtils.isNotBlank(bo.getJil()), GcjxljjtklqdjlbBsInfo::getJil, bo.getJil());
        lqw.eq(StringUtils.isNotBlank(bo.getFuh()), GcjxljjtklqdjlbBsInfo::getFuh, bo.getFuh());
        lqw.eq(StringUtils.isNotBlank(bo.getRiq()), GcjxljjtklqdjlbBsInfo::getRiq, bo.getRiq());
        return lqw;
    }

    /**
     * 新增钢材机械连接接头抗拉强度试验检测记录
     */
    @Override
    public Boolean insertByBo(GcjxljjtklqdjlbBsInfoBo bo) {
        GcjxljjtklqdjlbBsInfo add = BeanUtil.toBean(bo, GcjxljjtklqdjlbBsInfo.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setExcelId(add.getExcelId());
        }
        return flag;
    }

    /**
     * 修改钢材机械连接接头抗拉强度试验检测记录
     */
    @Override
    public Boolean updateByBo(GcjxljjtklqdjlbBsInfoBo bo) {
        GcjxljjtklqdjlbBsInfo update = BeanUtil.toBean(bo, GcjxljjtklqdjlbBsInfo.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }

    /**
     * 保存前的数据校验
     */
    private void validEntityBeforeSave(GcjxljjtklqdjlbBsInfo entity){
        //TODO 做一些数据校验,如唯一约束
    }

    /**
     * 批量删除钢材机械连接接头抗拉强度试验检测记录
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO 做一些业务上的校验,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
